Skip to main content

Versi 1

FieldIsi
Dokumen IDVBS-PBL-006
DeskripsiPemesanan barang ke supplier (Purchase Order) sebelum barang diterima, termasuk ringkasan pesanan, daftar, filter, penyelesaian PO, pesan ulang, dan kelanjutan menjadi pembelian atas PO
Nomor Revisi1
Tanggal2026-10-04
KeteranganDokumentasi baseline dari dokumentasi fitur demo dan kode FE

1. Ringkasan​

a. In scope​

  • User melihat ringkasan PO: pesanan belum diproses 30 hari terakhir dan pesanan selesai diproses 30 hari terakhir.
  • User melihat daftar PO (tanggal, nomor invoice, supplier, status invoice: draft / belum selesai / selesai).
  • User memfilter daftar berdasarkan tanggal invoice, supplier, gudang / kandang, dan status.
  • User membuat PO baru dengan tanggal, supplier, lokasi, gudang / kandang, dan baris barang (qty, satuan, harga, diskon), baik manual maupun dari Purchase Request.
  • User menyimpan PO sebagai draft atau final.
  • User mengubah dan menghapus PO draft.
  • User melanjutkan PO final yang belum selesai menjadi pembelian atas PO.
  • User menyelesaikan PO (sisa qty dibatalkan) atau memesan ulang sisa barang ke PO baru lalu menutup PO lama.
  • User mencetak PO.

b. Catatan​

c. Kesimpulan​

  • [FE] -
  • [BE] -

2. Functional Requirement​

KodeDeskripsi
FR-01Sistem menampilkan ringkasan pesanan belum diproses dan selesai 30 hari terakhir bagi user berhak
FR-02Sistem menampilkan daftar PO dengan pagination
FR-03User dapat memfilter daftar PO
FR-04User dapat membuat PO tanpa PR maupun dari PR
FR-05User dapat menyimpan PO sebagai draft atau final
FR-06User dapat mengubah dan menghapus PO draft
FR-07User dapat membuat pembelian atas PO dari PO yang belum selesai
FR-08User dapat menyelesaikan PO dengan membatalkan sisa qty
FR-09User dapat memesan ulang sisa barang ke PO baru (backorder) dan menutup PO lama
FR-10User dapat mencetak PO final

3. Use Case List​

KodeDeskripsi
UC-01Melihat ringkasan dan daftar purchase order
UC-02Memfilter daftar purchase order
UC-03Membuat purchase order
UC-04Mengubah purchase order draft
UC-05Menghapus purchase order draft
UC-06Melanjutkan PO menjadi pembelian atas PO
UC-07Menyelesaikan purchase order
UC-08Memesan ulang sisa barang dan menutup PO
UC-09Mencetak purchase order

4. Use Case Scenario​

UC-01 : Melihat ringkasan dan daftar purchase order​

AktorUser dengan hak #po
DeskripsiUser melihat ringkasan pesanan dan daftar PO
PrekondisiUser sudah login
Brand aktif
Alur utama1. User membuka menu Purchase Order.
2. Sistem menampilkan kartu ringkasan pesanan belum diproses dan pesanan selesai 30 hari terakhir.
3. Sistem menampilkan daftar PO dengan status.
Alur negatif- Jika daftar kosong tanpa filter, muncul "Daftar Invoice masih kosong".
- Jika daftar kosong dengan filter, muncul "Invoice Tidak Ditemukan".
- Jika ringkasan gagal, nominal ditampilkan 0.
Bisnis rule- Ringkasan hanya tampil bagi user dengan hak #summary-pembelian.
- Pesanan belum diproses dihitung dari PO final dengan qty sisa PO lebih dari 0.
PostkondisiRingkasan dan daftar tampil
TriggerUser membuka halaman Purchase Order
Kode FRFR-01
FR-02

UC-02 : Memfilter daftar purchase order​

AktorUser dengan hak #po
DeskripsiUser mempersempit daftar PO
PrekondisiUser berada di halaman daftar
Alur utama1. User mencari nomor invoice.
2. User membuka Filter dan mengisi tanggal invoice, supplier, gudang / kandang, dan/atau status.
3. Sistem memuat ulang daftar.
Alur negatif- Jika tidak ada data, muncul "Invoice Tidak Ditemukan".
Bisnis rule- Status: Selesai, Draft, Belum Selesai.
- Draft berarti PO belum final.
PostkondisiDaftar terfilter
TriggerUser mengubah filter
Kode FRFR-03

UC-03 : Membuat purchase order​

AktorUser dengan hak #po basic
DeskripsiUser memesan barang ke supplier
PrekondisiSupplier dan barang terdaftar
Alur utama1. User klik Buat Invoice (atau proses dari Purchase Request).
2. User mengisi tanggal, supplier, lokasi, dan gudang / kandang.
3. User menambah barang (qty, satuan, harga, diskon).
4. User memilih Simpan Draft atau Simpan Final, lalu mengonfirmasi.
5. Sistem menyimpan PO dan menampilkan "Purchase Order berhasil dibuat".
Alur negatif- Jika informasi belum lengkap, muncul "Lengkapi Form Informasi dengan benar!".
- Jika rincian kosong, muncul "Isi terlebih dahulu Form Rincian Barang/Jasa dengan benar!".
- Jika gudang kosong, muncul "Tolong lengkapi gudang form dengan benar!" / "Tolong lengkapi gudang rincian dengan benar!".
- Jika final dengan qty 0 atau kurang, muncul "Anda tidak bisa simpan final karena masih ada qty yg kurang dari atau sama dengan 0".
- Jika PR dari tautan tidak ditemukan, muncul "Invoice PR yang anda cari tidak ditemukan!".
- Jika server gagal, muncul "Gagal membuat Purchase Order ...".
Bisnis rule- PO baru berstatus belum selesai.
- PO final dari PR memakai jalur dengan PR, selain itu jalur tanpa PR.
- Baris dari PR membawa id baris PR dan invoice PR.
- PPN mengikuti konfigurasi PKP brand.
PostkondisiPO tersimpan sebagai draft atau final
TriggerUser klik Simpan
Kode FRFR-04
FR-05

UC-04 : Mengubah purchase order draft​

AktorUser dengan hak #po basic
DeskripsiUser memperbaiki PO draft
PrekondisiPO berstatus draft
Alur utama1. User memilih Edit.
2. Sistem memuat detail PO.
3. User mengubah data dan menyimpan.
Alur negatif- Validasi sama seperti pembuatan.
Bisnis rule- Edit hanya untuk PO draft.
PostkondisiPO diperbarui
TriggerUser klik Edit
Kode FRFR-06

UC-05 : Menghapus purchase order draft​

AktorUser dengan hak #po draft
DeskripsiUser menghapus PO draft
PrekondisiPO berstatus draft
Alur utama1. User memilih Hapus.
2. User mengonfirmasi.
3. Sistem menghapus PO dan menampilkan "Berhasil Hapus Invoice".
Alur negatif- Jika user batal, PO tidak dihapus.
- Jika gagal, muncul pesan error.
Bisnis rule- Data yang dihapus tidak dapat dikembalikan.
PostkondisiPO terhapus
TriggerUser klik Hapus
Kode FRFR-06

UC-06 : Melanjutkan PO menjadi pembelian atas PO​

AktorUser dengan hak #pembelian basic
DeskripsiUser membuat invoice pembelian dari PO yang barangnya sudah diterima
PrekondisiPO final dengan status belum selesai
Alur utama1. User memilih Masukkan Pembelian atas PO ini.
2. Sistem membuka form pembelian atas PO dengan PO terpilih.
3. Sistem mengisi supplier, gudang, lokasi, dan barang dari PO.
4. User melanjutkan alur pembelian atas PO.
Alur negatif- Jika PO tidak ditemukan, muncul "Invoice PO yang anda cari tidak ditemukan!".
Bisnis rule- Menu hanya muncul untuk PO final berstatus belum selesai.
PostkondisiForm pembelian atas PO terisi
TriggerUser klik Masukkan Pembelian atas PO ini
Kode FRFR-07

UC-07 : Menyelesaikan purchase order​

AktorUser dengan hak #po basic
DeskripsiUser menutup PO dan membatalkan sisa qty yang belum terkirim
PrekondisiPO final dengan status belum selesai
Alur utama1. User memilih Selesaikan PO.
2. User mengonfirmasi "Selesaikan Purchase Order?".
3. Sistem menandai PO selesai dan sisa qty sebagai dibatalkan.
4. Muncul "Purchase Order Berhasil Diselesaikan".
Alur negatif- Jika gagal, muncul "Purhase Order Gagal Diselesaikan. Error: ...".
Bisnis rule- Qty dibatalkan per baris = qty sisa PO.
PostkondisiPO berstatus selesai
TriggerUser klik Selesaikan PO
Kode FRFR-08

UC-08 : Memesan ulang sisa barang dan menutup PO​

AktorUser dengan hak #po basic
DeskripsiUser memindahkan sisa barang PO ke PO baru (backorder)
PrekondisiPO final dengan status belum selesai
Alur utama1. User memilih Pesan Ulang dan Tutup PO.
2. Sistem memuat detail PO dan menampilkan modal pesan ulang.
3. User memilih barang yang dipesan ulang.
4. Sistem membuka form PO baru berisi barang tersebut.
5. User menyimpan PO baru.
6. Sistem memperbarui PO lama dengan qty backorder dan nomor PO baru.
Alur negatif- Jika detail PO gagal dimuat, muncul pesan error.
- Jika pembaruan PO lama gagal, muncul "Gagal membuat Purchase Order ...".
Bisnis rule- Qty backorder PO lama = qty yang dipesan ulang.
- PO lama menyimpan nomor invoice PO baru sebagai referensi backorder.
PostkondisiPO baru terbentuk, PO lama tertutup
TriggerUser klik Pesan Ulang dan Tutup PO
Kode FRFR-09

UC-09 : Mencetak purchase order​

AktorUser dengan hak #po reprint
DeskripsiUser mencetak dokumen PO
PrekondisiPO final
Alur utama1. User memilih Print.
2. Sistem mencatat riwayat cetak dan memuat detail PO.
3. Sistem menampilkan modal cetak.
Alur negatif- Jika gagal, muncul pesan error.
Bisnis rule- Cetak ulang mengikuti riwayat cetak dan hak reprint.
PostkondisiPO tercetak
TriggerUser klik Print
Kode FRFR-10

5. Data Flow Diagram​

DFD-01 — Alur purchase order​

DFD-02 — Status purchase order​

6. Sequence Diagram​

SD-01 — UC-01 : Melihat ringkasan dan daftar purchase order​

SD-02 — UC-02 : Memfilter daftar purchase order​

SD-03 — UC-03 : Membuat purchase order​

SD-04 — UC-04 : Mengubah purchase order draft​

SD-05 — UC-05 : Menghapus purchase order draft​

SD-06 — UC-06 : Melanjutkan PO menjadi pembelian atas PO​

SD-07 — UC-07 : Menyelesaikan purchase order​

SD-08 — UC-08 : Memesan ulang sisa barang dan menutup PO​

SD-09 — UC-09 : Mencetak purchase order​

7. Table Schema​

8. API Schema​

EndpointStatusPerubahan
POST /laporan-pembelian/po-reportexisting-
GET /invoice-purchase-orderexisting-
GET /invoice-purchase-order/:idexisting-
POST /invoice-purchase-order/with-prexisting-
POST /invoice-purchase-order/no-prexisting-
PUT /invoice-purchase-order/:idexisting-
PUT /invoice-purchase-order/invoice-only/:idexisting-
DELETE /invoice-purchase-order/:idexisting-
GET /invoice-purchase-request/:idexisting-